package com.cskaoyan.javase.oop3._2inner._2static._0introduction;

/**
 * 静态内部类
 * 定义语法：
 * //外围（普通）类
 * [访问权限修饰符] class EnclosedClazz{
 *          [访问权限修饰符] static class NestedClazz{
 *          }
 * }
 *
 * 依然主要从以下几个角度分析：
 * 访问权限修饰符: 四种,和成员内部类是完全一致的
 *
 * 成员特点
 *      静态内部类和外围类就是独立的两个类，只不过静态内部类借用外围类的壳子来保护自己罢了。
 *      所以静态内部类和普通类的成员是完全一致的
 *      思考:
 *          1.创建对象
 *              静态内部类创建对象不需要依赖于外围类对象
 *          2.类加载
 *              静态内部类和外围类的类加载不会互相影响,没有关系
 * 继承和实现
 *      可以继承,可以实现,根据实际情况而定.
 *
 * @since 10:59
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
}

class EnclosedClazz {
    private static class NestedClazz {
        int a;
        private  int b = 10;
        static int c = 20;
        static final  int D =30;
        void test(){}
        static void testStatic(){}

        public NestedClazz(int a, int b) {
            this.a = a;
            this.b = b;
        }

        public NestedClazz() {
        }
        {}
        static {}
    }
}